Balancing the traffic load in a SDN network is critical to avoid congestion, achieve high bandwidth utilization, and ensure quality of service (QoS). There remains a great challenge when the traffic load is fluctuating, especially when such fluctuation is quite intense in terms of scale and volume. Currently, there is still no good solution for this problem.
SDN decouples data forwarding capability from routing, resource and other management needs, while such functionality, distributed in IP networks, are now logically centralized into a SDN-OpenFlow(OF)controller.
With the global network topology and states, and the dynamic flow of information, the SDN controller(s) can make better optimized decisions on how to assign network resources and route different traffic flows.
With SDN, it is possible to devise a good load-balancing apparatus as an application over the SDN controller, while such an application is executed to (sub-) optimally route traffic that balances the loads, configure the network in either static or dynamic way under various traffic load scenarios.
There are current related approaches each having limitations:
OSPF (open shortest path first)-ECMP (equal-cost multi-path): Widely adopted, however, it computes shortest paths without considering traffic scenarios. Therefore, it cannot achieve good load balancing and high resource utilization. The probability of congestion is high (poor quality of solution).
Traffic-aware destination-based routing: Optimized for a given traffic load. It performs better than OSPF-ECMP. However, the performance is not good enough, especially when dealing with fluctuating traffic load. The main reason is that destination-based routing lacks flexibility in terms of routing.
Complete explicit routing: It supports flexible routing for each individual flow (a flow can be flexibly defined, e.g. src/dst IP, 5-tuple header fields). It is enabled by SDN and multi-protocol label switching (MPLS). It can achieve the optimal performance. However, the complexity is high. In a large network with a huge number of flows, routers may not have enough capacity in the flow tables (e.g., limited ternary content-addressable memory (TCAM)). So this approach is not scalable.
Key issues that have yet to be fully addressed include:
How to achieve good load balancing under a fluctuating traffic load;
How to ensure applicability of the approach in large-scale centrally controlled networks, e.g., SDN;
How to ensure that the approach has low computation and resource complexity; and
How to ensure that the approach works well when routers/switches have limited TCAM resources.